#include <stdio.h>
#include <string.h>

// 算法复杂度 o(n^2)

void reverse (char* pa) // 非常暴力的写法,该算法让原字符串旋转,纯每转一次就使用strcmp函数来比对,最后转完所有可能性如果不满足就返回值
{

    char tmp = *pa ;

    while (*(pa + 1))
    {

        *pa = *pa + 1 ;
         
        pa++ ;

    }

    *pa = tmp ;
    
}

int string (char* pa , char* pb , int sz)
{

    while (sz--)
    {

        reverse (pa) ;

        if (strcmp (pa , pb)) // 运用了strcmp库函数,当函数比对成功之后,其返回值为1,为真
        {

            return 1 ;

        }

    }

    return 0 ;

}

int main ()
{

    char a [] = "AABCD" ;

    char b [] = "CDAAB" ;

    size_t sz = sizeof (a) / sizeof (a [0]) ; // 返回比对数组的元素个数

    int back = string (a , b , sz) ;

    if (back) // 根据返回值0和1来打印
    {

        printf ("是旋转之后的字符串。") ;

    }

    else
    {

        printf ("不是旋转之后的字符串。") ;
        
    }

    return 0 ;

}